﻿using KingerRobot.MexicoSailunMDC.Dao;

namespace KingerRobot.MexicoSailunWMS.SpiService;
internal interface IWcsLocSku
{
    /// <summary>
    /// 获取位置信息
    /// </summary>
    /// <param name="skuIds"></param>
    /// <returns></returns>
    List<POWcsLocSku> GetWcsLocSkuBySkuIds(List<long?> skuIds);
    /// <summary>
    /// 获取位置信息
    /// </summary>
    /// <param name="locIds"></param>
    /// <returns></returns>
    List<POWcsLocSku> GetWcsLocSkuByLocIds(List<long?> locIds);
    /// <summary>
    /// 删除位置跟踪记录
    /// </summary>
    /// <param name="skuId"></param>
    /// <returns></returns>
    int DeleteWcsLocSkuBySkuId(long? skuId);
    /// <summary>
    /// 根据位置删除绑定
    /// </summary>
    /// <param name="locId"></param>
    /// <returns></returns>
    int DeleteWcsLocSkuByLoc(long? locId);
    /// <summary>
    /// 添加跟踪记录
    /// </summary>
    /// <param name="locId"></param>
    /// <param name="skuId"></param>
    /// <returns></returns>
    int AddWcsLocSku(long? locId, long? skuId);

    /// <summary>
    /// 跟踪记录
    /// </summary>
    /// <param name="locId"></param>
    /// <param name="skuId"></param>
    /// <returns></returns>
    int SetWcsLocSku(long? locId, long? skuId, bool isDelTarget = false);

    /// <summary>
    /// 通过位置查找“所有”
    /// </summary>
    /// <param name="locId"></param>
    /// <returns></returns>
    POWcsLocSku GetWcsLocSkuByLocId(long? locId);
    /// <summary>
    /// 通过位置查找“没有任务”
    /// </summary>
    /// <param name="locId"></param>
    /// <returns></returns>
    POWcsLocSku GetWcsLocSkuNoTaskByLocId(long? locId);
    /// <summary>
    /// 设置任务ID
    /// </summary>
    /// <param name="skuId"></param>
    /// <param name="taskId"></param>
    /// <returns></returns>
    int UpdateWcsLocSkuTask(long skuId, long taskId);
    /// <summary>
    /// 货位绑定信息
    /// </summary>
    /// <returns></returns>
    List<WcsLocSkuBean> GetWcsLocSkuBeans();

    /// <summary>
    /// 获取生产时间段的库存数量
    /// </summary>
    /// <returns></returns>
    List<StockMdTimeCount> GetStockMdTimeCount();


}


public class WcsLocSkuBean
{
    public POWcsLocSku POWcsLocSku { get; set; }
    public POProdProduct POProdProduct { get; set; }
}